package cn.iocoder.yudao.hires.entity;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 下游-面试邀约 DO
 *
 * @author 超级管理员
 */
@TableName("system_notice_interview")
@KeySequence("system_notice_interview_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class NoticeInterviewDO extends BaseDO {

    /**
     * 主键ID
     */
    @TableId
    private Long id;
    /**
     * 用户ID
     */
    private Long userId;
    private Long tenantId;
    /**
     * 职位ID
     */
    private Long positionId;
    /**
     * 职位名称(冗余)
     */
    private String positionName;
    /**
     * 面试时间
     */
    private LocalDateTime interviewStartTime;
    /**
     * 面试时间
     */
    private LocalDateTime interviewEndTime;
    /**
     * 面试地址
     */
    private String interviewAddress;
    /**
     * 经度
     */
    private BigDecimal longitude;
    /**
     * 纬度
     */
    private BigDecimal latitude;
    /**
     * 联系人
     */
    private String contactPerson;
    /**
     * 联系电话
     */
    private String contactPhone;
    /**
     * 面试类型(1:初试 2:复试 3:终面)
     */
    private Integer interviewType;
    /**
     * 面试形式(1:现场 2:视频 3:电话)
     */
    private Integer interviewForm;
    /**
     * 状态(0:待确认 1:已接受 2:已拒绝 3:已取消  4:已签到)
     */
    private Integer status;
    /**
     * 备注信息
     */
    private String remark;
    /**
     * 通知内容
     */
    private String content;
    /**
     * 是否已读(0:未读 1:已读)
     */
    private Integer isRead;


    // 个人简历基本信息
    @TableField(exist = false)
    private String userName;
    @TableField(exist = false)
    private Integer age;
    @TableField(exist = false)
    private Integer calculatedAge;
    @TableField(exist = false)
    private String workExperienceName;
    @TableField(exist = false)
    private String degree;
    @TableField(exist = false)
    private String orgName;
    @TableField(exist = false)
    private String office;
    //企业信息
    @TableField(exist = false)
    private String logoUrl;
    @TableField(exist = false)
    private String tenantName;
    @TableField(exist = false)
    private String industryName;
    @TableField(exist = false)
    private String companyNatureName;
    @TableField(exist = false)
    private String companyScaleName;
    //职位
    @TableField(exist = false)
    private String title;
    @TableField(exist = false)
    private String educationDictLabel;
    @TableField(exist = false)
    private String salaryDictLabel;
    @TableField(exist = false)
    private String experienceDictLabel;
    @TableField(exist = false)
    private String benefitsDictLabel;
    @TableField(exist = false)
    private String workProvinceName;
    @TableField(exist = false)
    private String contactName;
    @TableField(exist = false)
    private String contactPosition;
    @TableField(exist = false)
    private String contactEmail;

    @TableField(exist = false)
    @Schema(description = "是否最新(0否 1是)")
    private String isLatest;

    @TableField(exist = false)
    @Schema(description = "是否急聘(0否 1是)")
    private String isUrgent;


    /**
     * 职位id
     */
    private Integer positionCategoryId;

    /**
     * 职位名称
     */
    private String positionCategoryName;
}